home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 5 / Amiga Tools 5.iso / tools / developer-tools / andere sprachen / oberonv4 / text / elem.guide.text (.txt) < prev    next >
Encoding:
Oberon Text  |  1996-03-20  |  28.1 KB  |  300 lines

  1. Syntax12.Scn.Fnt
  2. ParcElems
  3. Alloc
  4. Syntax14b.Scn.Fnt
  5. Syntax10.Scn.Fnt
  6. Syntax12b.Scn.Fnt
  7. Syntax12i.Scn.Fnt
  8. LineElems
  9. Alloc
  10. TableElems
  11. Alloc
  12. Syntax10.Scn.Fnt
  13. Syntax10i.Scn.Fnt
  14. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  15. /columns  string
  16. Syntax10.Scn.Fnt
  17. ParcElems
  18. Alloc
  19. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  20. control column formatting
  21. string = {L|C|R|N|-}.
  22. Syntax10.Scn.Fnt
  23. ParcElems
  24. Alloc
  25. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  26. L    left flush
  27. C    centered
  28. R    right flush
  29. N    numeric (period adjusted)
  30. -    default
  31. Syntax10.Scn.Fnt
  32. Syntax10i.Scn.Fnt
  33. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  34. /rows  string
  35. Syntax10.Scn.Fnt
  36. ParcElems
  37. Alloc
  38. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  39. control row formatting
  40. string = {B|L|C|T|-}.
  41. Syntax10.Scn.Fnt
  42. ParcElems
  43. Alloc
  44. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  45. B    bottom flush
  46. L    common baseline
  47. C    centered
  48. T    top flush
  49. -    default
  50. Syntax10.Scn.Fnt
  51. Syntax10i.Scn.Fnt
  52. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  53. /noheads  string
  54. Syntax10.Scn.Fnt
  55. ParcElems
  56. Alloc
  57. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  58. turn header lines off
  59. string = {H|V |*}.
  60. Syntax10.Scn.Fnt
  61. ParcElems
  62. Alloc
  63. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  64. H    horizontal
  65. V    vertical
  66. *    all
  67. Syntax10.Scn.Fnt
  68. Syntax10i.Scn.Fnt
  69. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  70. /nolines  string
  71. Syntax10.Scn.Fnt
  72. ParcElems
  73. Alloc
  74. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  75. turn separation lines off
  76. string = {L|R|B|T|H|V|*}.
  77. Syntax10.Scn.Fnt
  78. ParcElems
  79. Alloc
  80. /left 0/right 0/nohead "*"/noline "*"/col "LL"/table
  81. L    left frame
  82. R    right frame
  83. B    bottom frame
  84. T    top frame
  85. H    horizontal separation
  86. V    vertical separation
  87. *    all
  88. Syntax10.Scn.Fnt
  89. ParcElems
  90. Alloc
  91. Syntax10i.Scn.Fnt
  92. /left 0/right 0/nohead "*"/noline "*"/table
  93. /period  string
  94. /left  integer
  95. /right  integer
  96. /bottom  integer
  97. /top  integer
  98. /grid  integer
  99. Syntax10.Scn.Fnt
  100. ParcElems
  101. Alloc
  102. /left 0/right 0/nohead "*"/noline "*"/table
  103. first char redefines period (e.g. ",")
  104. left cell margin
  105. right cell margin
  106. bottom cell margin
  107. top cell margin
  108. cell width grid *)
  109. Documentation of Text Elements
  110. Last Update: 1 Oct 93    (M. Hausner, Ed.)
  111. Changed and Updated for O4A: 18 March 96     (R. Degner)
  112. Table of Contents
  113. Element Class    Author    Last Update
  114. Clock    R. Griesemer    28 Sept 93
  115. Error    C. Szyperski    28 Sept 93
  116. Fold    H. M
  117. ssenb
  118. ck    28 Sept 93
  119. Graphic    C. Szyperski    27 Sept 93
  120. Icon    R. Griesemer    1 Oct 93
  121. Info    C. Steindl    
  122. Line    C. Szyperski    28 Sept 93
  123. Link    H. M
  124. ssenb
  125. Mark    H. M
  126. ssenb
  127. Index    M. Hof
  128. Menu    N. Wirth    16 Sept 93
  129. Picture    H. Marais, K. Rege    7 Feb 91
  130. Popup - "Hypertext without Surprises"    M. Franz, S. Ludwig    30 Sept 93
  131. Stamp    C. Szyperski    28 Sept 93
  132. Style    C. Szyperski    28 Sept 93
  133. Table    C. Szyperski    28 Sept 93
  134. Version    H. M
  135. ssenb
  136. This documentation is a periodically updated collection of sections describing fully independent text elements. Each section is divided into two subsections: A textual introduction to the functionality of the particular elements, followed by a list of supported commands. For each command, the command name, its explicit and its implicit parameters are given. Potential implicit parameters are the caret, selections, and the marked viewer. Explicit parameters are described using a compact syntax explained in the tutorial Edit.Guide.Text. At the end of each section a list of required files is given.
  137. E-mail update requests to the editor. Implementations of useful new text elements are always welcome.
  138. Companion documentation:
  139.     Edit.Guide.Text - Tutorial and Release Notes
  140. Clock Elements
  141. Analog clocks elements displaying the current time (whenever the machine is idle).
  142. command    explicit parameters    implicit parameters
  143. ClockElems.Insert 9    [number]    caret
  144. Insert a clock (with radius given in mm; default is 8) at the caret position.
  145. Error Elements (O4A uses Error Elems from  XE)
  146. Fold Elements
  147. Fold Elements can be used to partially and hierarchically fold texts. Folding a text stretch causes its replacement by another, usually shorter or empty text stretch. Unfolding a folded stretch reveils the original text stretch while hiding its replacement. A (partially) folded text may be compiled as if it where fully unfolded using a utility module Folds. Folds also includes the functionality of ErrorElems, as defined elsewhere in this documentation. Options such as the compiler or error message file to be used can be specified in a file Folds.Profile. A demonstration of FoldElems and Folds is available as file FoldDemo.Text.
  148. command    explicit parameters    implicit parameters
  149. FoldElems.Insert        selection
  150. Make selection foldable by inserting an appropriate pair of opening and closing fold elements before and after the selected text stretch, respectively.
  151. FoldElems.Expand        marked viewer
  152. Unfolds (expands) all folds contained in the marked text.
  153. FoldElems.Collapse        marked viewer
  154. Folds (collapses) all folds contained in the marked text.
  155. FoldElems.Marks     ("^" | "on" | "off")    marked viewer
  156. Make all fold elements in the marked text visible or invisible.
  157. FoldElems.Search        selection, marked viewer    
  158. Searches for the selected pattern in the text of the focus viewer starting at the caret position. Searches also within folded parts and opens folds if necessary to display found text stretches. If no selection is present, the last search pattern is used again. If no caret is present, the search starts at the beginning of the text.
  159. Folds.Compile    ("^" | "*" [compiler-options] | name [compiler-options])
  160. Compiles the specified text (possibly containing folds). The compiler is started on the fully expanded view of the text.
  161. Folds.ShowError    ("*")    marked viewer
  162. Places the caret at the next error after the caret position and display an error message in the Log viewer. If no caret is present, the first error in the marked text is displayed.
  163. Folds.SetProfile
  164. Sets the options specified in the file Folds.Profile (which compiler and which error message file should be used; should warnings be displayed). SetProfile is done automatically at the beginning. If Folds.Profile is missing, default options are: Compiler.Compile, OberonErrors.Text, warnings displayed.
  165. Graphics Elements
  166. Graphic elements support incorporation of graphs compatible with the standard Draw package into texts. A single command is provided by module GraphicElems in order to insert a new graphics. Using the middle mouse button, a graphics element can be "opened" for editing. As a result, a graphics viewer is opened displaying the graph. The command GraphicElems.Update in the viewer's menu can be used to propagate changes made to the graph back to the graphics element. Graphic elements support inplace editing: focus the element using the left mouse key and use standard Draw editing techniques within the activated graphics frame.
  167. command    explicit parameters    implicit parameters
  168. GraphicElems.Insert    ("^" | "*" | name)    caret (plus marked viewer, if "*" is used)
  169. Inserts a graphics element sized to show the graph stored in graphics file "name". If an open graphics viewer is marked, the command can be used to insert all or part of a displayed graph: if a selection exists in the marked graphics viewer's graph, only the selection is copied into the graphics element.
  170. Icon Elements
  171. Display a small "walking sysiphus" icon. By clicking on such an icon using MM, a screen saver is started. Using an icon editor, the file IconElems.Icon may be changed or replaced to install a different animated icon.
  172. command    explicit parameters    implicit parameters
  173. IconElems.Insert        caret
  174. Inserts a new Icon Element at the caret position.
  175. Info Elements
  176. Info elements are similar to popup menus. When clicking on the element with the middle mouse button, it responds by showing a text. This text contains additional information about the text in which the element is inserted. A typical application is a source module where you would like to add some informations about the programmer and the programming task to the document.
  177. command    explicit parameters    implicit parameters
  178. InfoElems.Insert        caret
  179. Inserts a new Info Element at the caret position.
  180. Hints
  181. The module Find exports a command called AllInfo which can be very useful in combination with InfoElems:
  182. Find.AllInfo ^
  183. searches within the InfoElems of the files specified with Find.Domain. The selection must be of the form item = searchPattern where item is one of {"Title", "Author", "Abstract", "Keywords", "Version", "From", "Until", "Hints", "Changes"}, searchPattern must match exactly or contain asterisks.
  184. E.g.: Find.AllInfo Author = *CS*
  185. Contents of a new InfoElem:
  186. "Title": no title
  187. "Author": no name
  188. "Abstract": no abstract
  189. "Keywords:": no keywords
  190. "Version": no version
  191. "From":  28.10.94 16:59:45
  192. "Until": no date (use StampElems.Insert)
  193. "Hints": This text can again contain arbitrary text elements!
  194. Line Elements
  195. Line elements support horicontal or vertical lines within a text. A single command is provided to insert new line elements. The insertion command takes certain parameters such that line elements can be set to automatically adapt in width and height.
  196. command    explicit parameters    implicit parameters
  197. LineElems.Insert    ("^" | ( ("auto" | "tab" | W) ("auto" | H) ) )    caret
  198. Inserts a line of given or automatically adopted width and height into a text. Width and height may be set in units of 1/10 mm. Otherwise, the width may be set to extend to the end of the current line ("auto") or to the next tabulator position ("tab"). The height may be set to equal the paragraphs line height (determined by the parc's line attribute).
  199. Link Elements
  200. This module provides two kinds of text elements: link elements and link menus.
  201. - A link element represents a hypertext link to a mark element (MarkElems). When the user middle-clicks at the link element the text around the associated mark element is displayed. A middle click at the mark element leads one back to the link element.
  202. - A link menu is an extension of a popup element (PopupElems). It can be used in the menu bar of a viewer. When the user clicks at a link menu, a list of all mark elements in the viewer pops up. By selecting an entry the user can get to any of the mark elements quickly. The list of marks is collected automatically.
  203.         For example, the user can invoke the command MarkElems.MarkProcs to insert mark elements in front of all procedure names in procedure declarations. The link menu will then show all these mark elements and the procedure names following them in the text. Of course the user can also insert mark elements explicitly (e.g., in front of type names or variable names). These marks will also be shown in the link menu together with the names following them in the text.
  204. User interaction. A middle click at a link element displays the text around the associated mark element. If the mark element is in the same text as the link element, the text is scrolled to the mark element's position. If it is in a different text, a new viewer is opened showing the mark element and its surrounding text.
  205.     A middle-right click at a link element opens a viewer showing the value of the link target (expressed by the tuple <destination file name, mark key>). This text can be edited and stored back to the element with LinkElems.Update from the viewer's menu.
  206.     A middle click at a link menu pops up a list of all marks in the viewer's text. By selecting a specific entry the text is scrolled to that mark.
  207. command    explicit parameters    implicit parameters
  208. LinkElems.Insert        caret
  209. inserts a link element at the caret position. The target point of the link is taken from the most recent selection. If a mark element is selected the link goes to that mark element otherwise a new mark element is inserted at the beginning of the selection.
  210. LinkElems.InsertMenu        caret
  211. inserts a link menu at the caret position. Link menus should only be used in the menu bar of a viewer.
  212. LinkElems.Update
  213. updates an edited <file name, key> value. See also "middle-right click" above.
  214. Procedures
  215. New(f, k) creates and returns a link element that leads to the mark element with the key k in file f.
  216. FollowLink(f, k, lf, le) follows as link to a mark element with the key k in file f. The frame containing the link element must be given in lf and the link element itself in le. These two parameters are used to establish a backwards link.
  217. It is a good idea to insert a link menu in Edit.Menu.Text, so that a list of all marks can be popped up in all text viewers.
  218. Mark Elements
  219. Mark elements mark a certain position in a text. They are typically used as the target of hypertext links (LinkElems) or as bookmarks. They can be referenced via a numeric key.
  220. User interaction. If one got to a mark element by following a hypertext link, a middle click at this element will lead one back to the source of the link, i.e., to the corresponding link element. A middle+right click will open a viewer showing the element's key. The key can be edited and stored back to the element with MarkElems.Update from the viewer
  221. s menu. This may be useful in rare cases to resolve key ambiguities.
  222. command    explicit parameters    implicit parameters
  223. MarkElems.Insert        caret
  224. inserts a mark element with a new key at the caret position. 
  225. MarkElems.Update
  226. updates an edited key value. See also "middle click" above.
  227. MarkElems.ShowNext        caret
  228. searches for the next mark element after the caret position and sets the caret to it.
  229. MarkElems.MarkProcs        marked viewer
  230. inserts mark elements in front of all procedure declarations in the marked viewer. This is useful in the context of link menus (see LinkElems.Menu) which automatically create links to all mark elements in a text.
  231. Procedures
  232. New() returns a new and initialized mark element that has not been inserted into a text yet.
  233. Index Elements
  234. Index elements work similar to mark elements. They also mark a text position which may be used as the target of hypertext links (LinkElems) or as bookmarks. The added functionality is their ability to automatically create an index of the corresponding text.
  235. User interaction. A middle click will open a viewer showing the text associated with this element. The associated text can be edited and stored back to the element with IndexElems.Update resp. MarkElems.Update from the viewer menus. 
  236. command    explicit parameters    implicit parameters
  237. IndexElems.Insert        caret
  238. inserts an index element with a new key at the caret position. The current selection is taken as the associated text. If there is no current selection, the associated text is empty. 
  239. IndexElems.Update
  240. updates the edited associated text. See also "middle click" above.
  241. IndexElems.Hide        marked viewer
  242. hides all index elements in the marked viewer.
  243. IndexElems.Show        marked viewer
  244. redisplays all index elements in the marked viewer.
  245. IndexElems.Index        server-name "*" {option}
  246. Generates an Index for the marked viewer. As a side effect, text is printed as well. For a detailed description of available options read the information on Edit.Print. The index is displayed in a separate viewer. It has the following format:  <associated text> tab pagenumber <Link Element> {"," pagenumber <Link Element>}.
  247. Picture Elements
  248. Picture elements support incorporation of pictures compatible with the standard Paint package into texts. Using the middle mouse button, a picture element can be "opened" for editing. As a result, a picture viewer is opened displaying the picture. The command PictureElems.Update in the viewer's menu can be used to propagate changes made to the picture back to the picture element.
  249. command    explicit parameters    implicit parameters
  250. PictElems.Insert    ("^" | "*" | name ["scaled"])    caret
  251. Inserts a picture element sized to show the picture stored in picture file "name". If "*" is used, the marked picture is inserted.
  252. Popup Elements - "Hypertext without Surprises"
  253. Popup elements introduce hypertext features into texts. They have commands associated with them which are executed when the elements are clicked. A popup element that executes a single command is also called a "button". Popup Elements are a generalization of the "button" concept found in many hypertext systems in that they present a user with a menu of choices instead of representing only a single command.
  254. A popup element is displayed as a rectangular "button" shape floating in the text. Clicking MM while the mouse points to a button causes the menu of commands associated with the button to appear on the screen. The command that was last chosen from this menu is highlighted and offered as a default. A new command may then be chosen from the menu by moving the mouse over it. The new command becomes highlighted and is executed when the user releases the middle mouse button. At any time, the popup action may be cancelled by releasing MM while the mouse is outside of the menu box or by a click of the left mouse button.
  255. Interclicking MR while a menu is displayed opens a menu-edit viewer. The menu may be edited freely in this viewer. Any changes are propagated instantly to the menu in question. Popup elements may be copied freely among texts. Their complete state, including the last command chosen (the next default) are saved to and restored from disk when the associated document is written or opened.
  256. When a menu command is called, Oberon.Par.text is set to the text of the menu. It is therefore possible to pass parameters to menu commands simply by including them in the menu text. Oberon.Par.vwr is set to the Viewer displaying the text and Oberon.Par.frame to the corresponding frame.
  257. command    explicit parameters    implicit parameters
  258. PopupElems.Insert    string    caret
  259. Inserts a new popup element with an initially empty menu. The menu associated with the element may be edited in a menu-edit viewer which is opened by clicking MM on the element with MR interclick. The width of the menu is automatically adjusted to accomodate the widest command, while its line spacing is adjusted automatically to accomodate the largest font in the menu.
  260. Menu Elements
  261. Menu elements are a variant of popup elements. They appear as a simple piece of text (their name) on the screen. If clicked at with MM, a command menu pops up. A Middle-Left-Click at the element causes the menu text to be displayed for editing in a separate viewer. The first line of the menu text is interpreted as the menu name.
  262. command    explicit parameters    implicit parameters
  263. MenuElems.Insert        caret position
  264. Inserts a menu element at the caret position. Initially the element is displayed as a blank rectangle. A Middle-Left-Click displays the (empty) menu text for editing.
  265. MenuElems.Update        text in command viewer
  266. This command is usually contained in the menu of the viewer that displays the text of a menu element for editing. It installs the text in the viewer as the new menu text of the element.
  267. Stamp Elements
  268. Display date of most recent store of the text containing the element. (After insertion, StampElems display the current date.) The insert command takes an optional font name which is used to preset the font of the inserted element.
  269. command    explicit parameters    implicit parameters
  270. StampElems.Insert    [name]    caret
  271. Inserts a new stamp element, where the name indicated the font to be used. (If name is omitted, the default font is used.)
  272. Style Elements
  273. Style Elements extend standard Parcs by adding a name and automatic conformance of equally named parcs within a text. For example, a parc named "heading" may be set to format a section heading. Then, all parcs with that name use and maintain the same format as changes are propagated automatically.
  274. When copying a style parc from one text to another the behaviour of the copied parc depends on the target text. If it already contains a style with that name, the copied parc will adopt itself to that style. Otherwise, the copied parc defines a new style. Likewise, a style parc may be renamed. If it is renamed to a style that already exists in the containing text, the parc will adopt to that style, while otherwise it introduces a new style.
  275. Some examples for style parcs follow below. Note that the Syntax8.Scn.Fnt file should be available to get nicely labled style parcs.
  276. command    explicit parameters    implicit parameters
  277. StyleElems.Insert    ("^" | name | string)    caret
  278. Insert a new style parc with the given name at the caret position. A quoted string may be used to assign names consisting of multiple words.
  279. StyleElems.Rename    ("^" | name | string)    selected parc
  280. Renames the selected parc to the given name.
  281. Table Elements
  282. Table Elements are automatically formatted tables created from raw, unformatted data. A plain text separated by tabulator characters into columns and by carriage returns into rows can be used to define the table. Furthermore, a certain set of options may be used to modify the default formatting of the table.
  283. Clicking on a table element using MM opens an viewer such that the table contents can be edited. Tables may contain arbitrary text elements, including tables. However, elements incorporated into a table are frozen as is, i.e. messages broadcasted to all visible elements in a text frame are not passed to elements nested into a table. Hence, only static elements should be inserted into tables.
  284. Starting from a defining text containing arbitrary strings separated by tabulator and carriage-return characters, a table is constructed. Tabulators separate columns, carriage-returns separate rows. The separated strings form the contents of table cells. Each such string may in turn contain arbitrary text elements and especially it may contain nested tables. The defining text is bound to a table element and can be edited by clicking on a table with the middle mouse button. In return, a standard text viewer is opened containing an update command in its menu bar. The syntax of the defining text is as follows, table options will be defined later.
  285.     table = {option} "/table" {line}.
  286.     line = cell {TAB cell} CR.
  287.     cell = ["#" | "&"] <string of characters not containing TAB or CR>.
  288. A string starting with a digit, a period (.), or a sign (+ or -) is considered numeric, otherwise it is considered nonnumeric. A number sign (#) prefixing a string is suppressed and enforces numerical interpretation; likewise, an ampersand (&) prefixing a string is suppressed and enforces nonnumerical interpretation. The default table formatting causes all cells in the first column to be formatted left flush. In all other columns, the default format for numeric cells is period-aligned and that for nonnumeric cells is centered. All cells in a row are by default aligned to a common base line. Also, the default format causes the table to be framed and separating lines between rows and columns to be drawn. Finally, for a table with more than two rows or two columns the first row or column separatation line is drawn using two parallel lines, respectively. Most of the default formats can be changed using the provided option set.
  289. For table elements the printing dilemma discussed in section 1.5 needs to be reconsidered. Following the strategy developed for texts, a table would be recasted when printing. However, one of the primary attributes of a table are its measures, i.e. the space taken for individual cells of the table and the arrangement of the cells with respect to each other. It is not acceptable that a table gets completely redimensioned when printed. Hence, for table elements a different printing strategy has been choosen: the displayed table on the screen follows - down to the character level - the metrics of the printer fonts. The resulting screen image looks a bit distorted, however, the displayed measures correspond as closely as possible to the printed ones.
  290. The following table gives an overview over available table formatting options.
  291. option    effect (measures in 1/10 mm)    argument values
  292. *)  A parc at the beginning of the table defining text introduces a minimal
  293.      cell height as well as a cell height grid (if the grid option of the parc is set)
  294. Overview of TableElems Options
  295. command    explicit parameters    implicit parameters
  296. TableElems.Insert    ["^" | name]    caret
  297. Insert a table defined by the given text at the caret position. If no defining file is given, or the table definition is syntactically erroneous, an empty table is inserted.
  298. TableElems.Update    (to be called from menu frame)
  299. Take the viewer's content frame's text as defining text and update the associated table element.
  300.